---
title: Custom Wallet List
description: Customizing the wallet list
---

# Custom Wallet List

## Customizing the wallet list

You can import individual wallets from `'@rainbow-me/rainbowkit/wallets'` along with the `connectorsForWallets` function to build your own list of wallets with their necessary connectors. This way you have full control over which wallets to display, and in which order.

For example, you can choose to only show Rainbow along with generic fallback wallets.

```tsx
import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import {
  rainbowWallet,
  walletConnectWallet,
} from '@rainbow-me/rainbowkit/wallets';

const connectors = connectorsForWallets(
  [
    {
      groupName: 'Recommended',
      wallets: [rainbowWallet, walletConnectWallet],
    },
  ],
  {
    appName: 'My RainbowKit App',
    projectId: 'YOUR_PROJECT_ID',
  }
);
```

You can then pass your connectors to Wagmi's `createConfig`.

```tsx
import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import { createConfig } from 'wagmi';

const connectors = connectorsForWallets(/* ... */);

const config = createConfig({
  connectors,
  {/* Wagmi config */}
});

const queryClient = new QueryClient();

const App = () => (
  <WagmiProvider config={config}>
    <QueryClientProvider client={queryClient}>
      <RainbowKitProvider {...etc}>
        {/* Your App */}
      </RainbowKitProvider>
    </QueryClientProvider>
  </WagmiProvider>
);
```

### Built-in wallets

The following wallets are provided via the `wallet` object.

#### Generic Wallets

The following wallets are scoped to generic connection methods rather than specific apps. As a result, it’s recommended that these wallets are always included.

##### WalletConnect

This is a fallback wallet option designed for WalletConnect-based wallets that haven’t been provided by another wallet in the list.

**It's recommended that you always include this wallet in the list to ensure all WalletConnect-based wallets are supported.**

```tsx
import { walletConnectWallet } from '@rainbow-me/rainbowkit/wallets';
```

##### Injected Wallet

This is a fallback wallet option designed for scenarios where `window.ethereum` exists but hasn’t been provided by another wallet in the list. This wallet will automatically hide itself from the list when the fallback is not necessary or if there is no injected wallet available.

**It's recommended that you always include this wallet in the list to ensure all injected wallets are supported.**

```tsx
import { injectedWallet } from '@rainbow-me/rainbowkit/wallets';
```

##### Safe Wallet

For dApps that support Safe Apps to allow users to easily connect with their Safe vault or multi-sig, include the `safeWallet` option for automatic connections. The Safe option will only appear in the Safe Wallet browser environment.

```tsx
import { safeWallet } from '@rainbow-me/rainbowkit/wallets';
```

### Specific Wallets

The following wallets are provided via the `wallet` object (in alphabetical order).

#### 1inch Wallet

```tsx
import { oneInchWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Backpack

```tsx
import { backpackWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Base Account (formerly Coinbase Wallet)

This wallet connector supports Base Account, the evolution of Coinbase Smart Wallet. It provides seamless authentication and enhanced features like sub-accounts and spend permissions.

Configuration options align with the [Base Account SDK reference](https://docs.base.org/base-account/reference/core/createBaseAccount).

```tsx
import { baseAccount } from '@rainbow-me/rainbowkit/wallets';

// Configure attribution (choose one approach)
baseAccount.preference = {
  attribution: { auto: true }, // Smart Wallet generates origin-based identifier
};

// Or use custom attribution
baseAccount.preference = {
  attribution: { dataSuffix: '0x1234567890abcdef' }, // 16-byte hex identifier
};

// Configure sub-accounts
baseAccount.subAccounts = {
  creation: 'on-connect', // or 'manual'
  defaultAccount: 'sub', // or 'universal'
  funding: 'spend-permissions', // or 'manual'
};

// Configure paymaster URLs for gasless transactions
baseAccount.paymasterUrls = {
  [base.id]: 'https://api.developer.coinbase.com/rpc/v1/base/...',
};
```

#### BeraSig

```tsx
import { berasigWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Best Wallet

```tsx
import { bestWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Bifrost Wallet

```tsx
import { bifrostWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Binance Web3 Wallet

```tsx
import { binanceWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Bitget

```tsx
import { bitgetWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Bitski

```tsx
import { bitskiWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Bitverse

```tsx
import { bitverseWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Bloom Wallet

```tsx
import { bloomWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Brave Wallet

```tsx
import { braveWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Bybit Wallet

```tsx
import { bybitWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Coin98 Wallet

```tsx
import { coin98Wallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Compass Wallet

```tsx
import { compassWallet } from '@rainbow-me/rainbowkit/compassWallet';
```

#### Core

```tsx
import { coreWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### CTRL Wallet

```tsx
import { ctrlWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Dawn Wallet

```tsx
import { dawnWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Enkrypt Wallet

```tsx
import { enkryptWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### FoxWallet

```tsx
import { foxWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Frame Wallet

```tsx
import { frameWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Frontier Wallet

```tsx
import { frontierWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Gate Wallet

```tsx
import { gateWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Gemini Wallet

This smart wallet connector enables seamless authentication through passkeys at keys.gemini.com - no downloads, extensions, or API keys required. It just works out of the box.

The `appName` parameter is required for identifying your dApp, and `appIcon` is optional for branding your connection experience.

```tsx
import { geminiWallet } from '@rainbow-me/rainbowkit/wallets';

const gemini = geminiWallet({
  appName: 'My App',
  appIcon: 'https://my-app.com/logo.png', // Optional
});
```

#### imToken

```tsx
import { imTokenWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### ioPay Wallet

```tsx
import { iopayWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Kaia Wallet

```tsx
import { kaiaWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Kaikas

```tsx
import { kaikasWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Kraken Wallet

```tsx
import { krakenWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Kresus Wallet

```tsx
import { kresusWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Ledger Live

```tsx
import { ledgerWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Magic Eden Wallet

```tsx
import { magicEdenWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### MetaMask

```tsx
import { metaMaskWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### MEW Wallet

```tsx
import { mewWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Nova Wallet

```tsx
import { novaWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### OKX Wallet

```tsx
import { okxWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Omni

```tsx
import { omniWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### OneKey

```tsx
import { oneKeyWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### ParaSwap

```tsx
import { paraSwapWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Phantom

```tsx
import { phantomWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Porto

```tsx
import { portoWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Rabby Wallet

```tsx
import { rabbyWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Rainbow

```tsx
import { rainbowWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Ramper Wallet

```tsx
import { ramperWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Ready

```tsx
import { readyWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Ronin Wallet

```tsx
import { roninWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Safeheron

```tsx
import { safeheronWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Taho

```tsx
import { tahoWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Talisman

```tsx
import { talismanWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Tokenary

```tsx
import { tokenaryWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### TokenPocket

```tsx
import { tokenPocketWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Trust Wallet

```tsx
import { trustWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Uniswap Wallet

```tsx
import { uniswapWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Valora

```tsx
import { valoraWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Wigwam

```tsx
import { wigwamWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### xPortal

```tsx
import { xPortalWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### Zerion

```tsx
import { zerionWallet } from '@rainbow-me/rainbowkit/wallets';
```

#### ZilPay

```tsx
import { zilPayWallet } from '@rainbow-me/rainbowkit/wallets';
```

### Examples

#### Ordering

Here are a few examples of displaying different wallets, in different order.

Show MetaMask along with generic fallback wallets.

```tsx
import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import {
  metaMaskWallet,
  walletConnectWallet,
} from '@rainbow-me/rainbowkit/wallets';

const connectors = connectorsForWallets(
  [
    {
      groupName: 'Recommended',
      wallets: [metaMaskWallet, walletConnectWallet],
    },
  ],
  { appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
);
```

Show Rainbow, MetaMask and Base Account along with generic fallback wallets.

```tsx
import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import {
  rainbowWallet,
  metaMaskWallet,
  baseAccount,
  walletConnectWallet,
} from '@rainbow-me/rainbowkit/wallets';

const connectors = connectorsForWallets(
  [
    {
      groupName: 'Suggested',
      wallets: [
        rainbowWallet,
        metaMaskWallet,
        baseAccount,
        walletConnectWallet,
      ],
    },
  ],
  { appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
);
```

> Reminder: The order of the `wallets` array defines the order in which wallets will be displayed in the UI.

#### Multiple groups

You can use the `groupName` key to name different wallet groups. This is useful if you want to communicate to your users which wallets you recommend, as well as other possible wallets.

Recommend Rainbow and MetaMask, but also offer Base Account along with generic fallback wallets.

```tsx
import { connectorsForWallets } from '@rainbow-me/rainbowkit';
import {
  rainbowWallet,
  metaMaskWallet,
  baseAccount,
  walletConnectWallet,
} from '@rainbow-me/rainbowkit/wallets';

const connectors = connectorsForWallets(
  [
    {
      groupName: 'Recommended',
      wallets: [rainbowWallet, metaMaskWallet],
    },
    {
      groupName: 'Others',
      wallets: [baseAccount, walletConnectWallet],
    },
  ],
  { appName: 'RainbowKit App', projectId: 'YOUR_PROJECT_ID' },
);
```
